"""
数据源API控制器
"""
from flask import Blueprint, request, jsonify
from loguru import logger
from services.data_source_service import DataSourceService

# 创建蓝图
data_source_bp = Blueprint('data_source', __name__, url_prefix='/api/data-source')

# 创建服务实例
data_source_service = DataSourceService()

@data_source_bp.route('/get', methods=['POST'])
def get_data_sources():
    """
    获取数据源信息API
    
    请求体格式:
    {
        "query": "光伏组件出口到法国和英国的ESG合规要求"
    }
    
    响应格式:
    {
        "success": true/false,
        "message": "操作结果消息",
        "data": {...}, // 数据源信息
        "from_cache": true/false // 是否来自缓存
    }
    """
    try:
        # 获取请求数据
        request_data = request.get_json()
        logger.info(f"接收到获取数据源请求: {request_data}")
        
        # 验证请求参数
        if not request_data or 'query' not in request_data:
            logger.warning("请求参数无效，缺少query字段")
            return jsonify({
                'success': False,
                'message': '请求参数无效，缺少query字段'
            }), 400
        
        # 获取查询文本
        query_text = request_data['query']
        
        # 调用服务获取数据源
        result = data_source_service.get_data_sources(query_text)
        
        # 返回结果
        if result['success']:
            return jsonify(result), 200
        else:
            return jsonify(result), 500
    except Exception as e:
        logger.error(f"处理数据源请求时发生错误: {e}")
        return jsonify({
            'success': False,
            'message': f'处理请求时发生错误: {str(e)}'
        }), 500

@data_source_bp.route('/health', methods=['GET'])
def health_check():
    """健康检查接口"""
    return jsonify({
        'status': 'ok',
        'service': 'data-source-api'
    }), 200 